
OBJDIR_DBG = obj/Debug
OBJDIR_REL = obj/Release
BINDIR_DBG = bin/Debug
BINDIR_REL = bin/Release

SRCDIR = src

CC=g++
LIBS=-lm -lX11 -lEGL -lGLESv2 -lfreetype -lpng -lz
INC=-I/usr/include/ -I./include/ -I/usr/include/freetype2 
LIB=-L/usr/lib/x86_64/ 

CFLAGS = -g -Wall $(INC)
LDFLAGS = $(LIBS) $(LIB)

all: Debug

Executable: main.o MWindow.o MOpenGL.o MFTManager.o MGlyph.o MPNG.o MFontTexture.o MConfigManager.o MTools.o M3DBase.o
	$(CC) $(CFLAGS) -o $(BINDIR_DBG)/m3d-font-tool $(OBJDIR_DBG)/main.o $(OBJDIR_DBG)/MWindow.o $(OBJDIR_DBG)/MOpenGL.o $(OBJDIR_DBG)/MFTManager.o $(OBJDIR_DBG)/MGlyph.o $(OBJDIR_DBG)/MPNG.o $(OBJDIR_DBG)/MFontTexture.o $(OBJDIR_DBG)/MConfigManager.o $(OBJDIR_DBG)/MTools.o $(LDFLAGS) $(OBJDIR_DBG)/M3DBase.o
	cp -r fonts $(BINDIR_DBG)/
	cp -r $(SRCDIR)/m3d.cfg $(BINDIR_DBG)/

clean: cleanDebug
Debug: Executable

main.o: $(SRCDIR)/main.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/main.cpp -o $(OBJDIR_DBG)/main.o

MWindow.o: $(SRCDIR)/MWindow.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MWindow.cpp -o $(OBJDIR_DBG)/MWindow.o

MOpenGL.o: $(SRCDIR)/MOpenGL.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MOpenGL.cpp -o $(OBJDIR_DBG)/MOpenGL.o

MFTManager.o: $(SRCDIR)/MFTManager.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MFTManager.cpp -o $(OBJDIR_DBG)/MFTManager.o

MGlyph.o: $(SRCDIR)/MGlyph.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MGlyph.cpp -o $(OBJDIR_DBG)/MGlyph.o

MPNG.o: $(SRCDIR)/MPNG.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MPNG.cpp -o $(OBJDIR_DBG)/MPNG.o

MFontTexture.o: $(SRCDIR)/MFontTexture.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MFontTexture.cpp -o $(OBJDIR_DBG)/MFontTexture.o

MConfigManager.o: $(SRCDIR)/MConfigManager.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MConfigManager.cpp -o $(OBJDIR_DBG)/MConfigManager.o

MTools.o: $(SRCDIR)/MTools.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/MTools.cpp -o $(OBJDIR_DBG)/MTools.o

M3DBase.o: $(SRCDIR)/M3DBase.cpp
	$(CC) $(CFLAGS) -c $(SRCDIR)/M3DBase.cpp -o $(OBJDIR_DBG)/M3DBase.o


cleanDebug:
	rm -rf $(BINDIR_DBG)/*
	rm -rf $(OBJDIR_DBG)/*
